#!/bin/bash

# MD5 demo
str="水调歌头·明月几时有
苏轼
丙辰中秋，欢饮达旦，大醉，作此篇，兼怀子由

明月几时有？把酒问青天。
不知天上宫阙，今夕是何年。
我欲乘风归去，又恐琼楼玉宇，高处不胜寒。
起舞弄清影，何似在人间。

转朱阁，低绮户，照无眠。
不应有恨，何事长向别时圆？
人有悲欢离合，月有阴晴圆缺，此事古难全。
但愿人长久，千里共婵娟。"

md5 -s "$str"
md5 -qs "$str"

echo -e -n "$str" | md5

echo -e -n "$str"  > poem.txt
md5 poem.txt
md5 -q poem.txt


# base64 encode/decode demo

echo -e "\n\n\n string base64 encode "
echo -e -n "$str" | base64
b64str=$(echo -e -n "$str" | base64)

echo -e "\n\n file base64 encode "
base64 poem.txt
base64 poem.txt > poem.b64.txt



echo -e "\n\n string base64 decode "
echo -e -n "$b64str" | base64 -D

echo -e "\n\n file base64 decode "
base64 -D -i poem.b64.txt


# aes encode/decode demo
echo -e -n "PeoplesRepublicOfChina" > aeskey

echo -e "\n\n开始aes加密, input: poem.txt"
openssl enc -e -aes-256-cbc -kfile aeskey  -in poem.txt -out poem.aes.txt
if [ $? -eq 0 ] 
then
    echo -e "\n\naes 加密成功, output: poem.aes.txt"
    hexdump poem.aes.txt

    echo -e "\n\n开始aes解密, input: poem.aes.txt"
    openssl enc -d -aes-256-cbc -kfile aeskey -in poem.aes.txt

else 
    echo "aes 加密失败"
fi